package com.vansuita.gaussianblur.sample.anim; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.view.View; /** * Created by jrvansuita on 19/02/17. */ public class Animate { private static final int DURATION = 200; private View view; private Animate(View view) { this.view = view; } public static Animate with(View v) { return new Animate(v); } public boolean isVisible() { return view.getVisibility() == View.VISIBLE; } private int getAlphaBy() { return isVisible() ? 1 : 0; } private int getAlpha() { return isVisible() ? 0 : 1; } private AnimatorListenerAdapter getAnimatorListenerAdapter() { if (isVisible()) { return new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animator) { view.setVisibility(View.INVISIBLE); } }; } else { return new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animator) { view.setVisibility(View.VISIBLE); } }; } } public void toggleVisibility() { view.animate().alphaBy(getAlphaBy()).alpha(getAlpha()).setDuration(DURATION).setListener(getAnimatorListenerAdapter()); } }